/**
 * Created by pankaj on 25/10/14.
 */
define(['jquery', 'module/template/homeTemplate'], function($, template){

    return function(fakeInput, options){

        var click = function(){
            var form = $(template['home-update-input']);
            fakeInput.after(form);
            fakeInput.remove();
            var area = form.find('textarea');
            if(options.comment){
                area.val(options.comment);
            }
            area.focus();
            if(options.init){
                options.init();
            }
            var restore = function(elem){
                elem.last().after(fakeInput);
                elem.remove();
                fakeInput.once('click',click);
            };

            form.find('button.submit').once('click', function(){
                if(area.val().trim().length == 0){
                    return;
                } else {
                    var loader = template.small_loader;
                    form.last().after(loader);
                    form.remove();
                    $.ajax({
                        url : '/comment/comment',
                        type : "POST",
                        data : {'comment' : area.val().trim(), 'parentId' : options.parentId},
                        dataType : 'json'
                    }).done(function(data) {
                        restore(loader);
                        options.callback(data, options.commentDomParent);
                        // update module factory
                    }).fail(function() {
                        alert('oops ..');
                    });
                }
            });
            form.find('button.cancel').once('click',function(){
                if(options.finish){
                    options.finish(options);
                }
                restore(form);
            });
        };
        fakeInput.once('click', click);
    };
});